package com.xian.d3_collections;


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 目标:引用数掂关型的排序。
 * <p>
 * 字符串按照首字符的编号升序排序!
 * <p>
 * 自定义类型的比较方法API :Collections
 * - public static <T> void sort(List<T> list):
 * 将集合中元素按照默认规则排序。
 * 对于自定义的引用类型的排序人家根本不知道怎么排，直接报错!
 * <p>
 * - public static <T> void sort(List<T> list，Comparator<? super T> c):
 * 将集合中元素按照指定规则排序，自带比较器
 */
public class CollectionsDemo2 {
    public static void main(String[] args) {

        List<Apple> apples = new ArrayList<>();  //可以重复！！
        apples.add(new Apple("红富士", "红色", 9.9, 500));
        apples.add(new Apple("青苹果", "绿色", 19.9, 300));
        apples.add(new Apple("黄苹果", "黄色", 6.9, 400));
        apples.add(new Apple("绿苹果", "青色", 9.8, 500));

        Collections.sort(apples);  //排序，，Apple类已经重写了比较规则
        System.out.println(apples);


        //方式二:sort方法自带比较器对象
        Collections.sort(apples, (o1, o2) -> Double.compare(o1.getPrice(), o2.getPrice()));
        System.out.println(apples);
    }
}
